package ferran.tomas.ta;

import java.util.ArrayList;

import org.jdom.Document;

import android.util.Log;

import ferran.tomas.dominio.Checkpoint;
import ferran.tomas.dominio.Itinerario;

public class ControladorItinerario {
	private static ControladorItinerario Instancia;
	private ServidorPrincipal sp;
	
	private ControladorItinerario() {
		sp = ServidorPrincipal.getInstancia();
	}
	
	public static ControladorItinerario getInstancia() {
		if(Instancia == null) {
			Instancia = new ControladorItinerario();
		}
		
		return Instancia;		
	}
	
	public Itinerario getItinerario(String nombreUsuario) throws Exception {
		if(!sp.getItinerarios(utilsXML.XML_getItinerario(nombreUsuario))) {
			throw new Exception(sp.getRespuestaServidorPrincipal());
		}
		
		Document d = sp.getDocRespuestaServidorPrincipal();
		if(d == null) {
			throw new NoItinerariosException();
		}
		
		String id = utilsXML.getItinerarioID(d);
		
		Log.d("ControladorItinerario:getItinerario","El id es "+id);
		
		if(!sp.getCheckpoints(utilsXML.XML_getCheckpoints(id))) {
			throw new Exception(sp.getRespuestaServidorPrincipal());
		}
		
		Document checkpoints = sp.getDocRespuestaServidorPrincipal();
		ArrayList<Checkpoint> temp = utilsXML.getCheckpoints(checkpoints);
		
		Itinerario i = Itinerario.getInstancia();
		i.setCps(temp);
		
		return i;
	}
}

class NoItinerariosException extends Exception {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4205206427645994393L;
	
}
